package com.shangke.corejava.ch7;
/*继承
 * 		1.继承使用extends关键词进行表示，子类可以通过继承共用父类的特征（属性）和行为（方法）
 * 		2.语法：修饰符(修饰符可以不写)  class 子类    extends 父类
 * 		3.在java中继承属于单继承：一个子类只能有一个父类（*注意的点）
 * 		4.在子类的构造方法中，可以使用super指向父类；调用父类的构造方法
 * 		5.子类可以通过继承重用父类的代码，这不是主要的目标；
 * 			继承更主要的目的是为了对父类的功能进行扩展，增加程序的可维护性
 * 		6.子类可以重写父类的方法；子类可以扩展自己的方法；（继承最重要的目标是对所继承的父类进行扩展，通过自己进行扩展）
 * 		7.在java中，所有类都有一个共同的父类：java.lang.Object
 * 			java的父类可以是直接父类，也指代父类的父类，直到Object(按Ctrl，再点击子类，一直点击，就可以找到子类)
 * 		JNI  --java本地调用接口，是多语言混合编程的接口，可以调用c语言编程代码
 * 		8.在实例化子类对象时，回先执行父类的构造方法，生成一个父类对象；实例化子类对象一定会产生多个对象（根据子类与Object类间的关系确定）
 */
public class Manager extends Employee{
	public Manager() {
		super();//在子类的构造方法中，可以使用super指向父类；调用父类的构造方法
	}
	
	public Manager(String name, String sex, int age, String phone) {
		//this();
		//this.work();
		//	使用this 或   super 调用构造方法时，代码必须放在第一行
		
		//这里的this可以在构造方法中，调用自己的构造方法。    --一般用于多个构造方法时
		//注意：不能同时使用this 和    super 进行构造方法调用
		super(name,sex,age,phone);//这里调用父类的带参构造方法；不编写super调用时，默认会调用父类的空参构造方法
		//work();子类和父类都有work方法，不写this或super时，默认调用子类的方法
		this.equals(null);  //子类没有equals方法，默认调用父类的方法；可以是this或super或不写进行调用
		super.equals(null);
		equals(null);
	}
	
	//@override 方法的重写                 @overload 方法的重载
	//方法的重写发生在子类和父类之间，子类重写父类的方法
	//方法的重写可以使用@Override进行注释
	
	@Override
	public void work(){
		super.work();//不加super的时候，就是递归调用，但是没有终结调用会出现死循环
		//调用super 之后不会出现死循环
		//clone 克隆        finalize 
		System.out.println("管理公司");
	}
	
}
